7 research outputs found

    Global semantic typing for inductive and coinductive computing

    Get PDF
    Inductive and coinductive types are commonly construed as ontological (Church-style) types, denoting canonical data-sets such as natural numbers, lists, and streams. For various purposes, notably the study of programs in the context of global semantics, it is preferable to think of types as semantical properties (Curry-style). Intrinsic theories were introduced in the late 1990s to provide a purely logical framework for reasoning about programs and their semantic types. We extend them here to data given by any combination of inductive and coinductive definitions. This approach is of interest because it fits tightly with syntactic, semantic, and proof theoretic fundamentals of formal logic, with potential applications in implicit computational complexity as well as extraction of programs from proofs. We prove a Canonicity Theorem, showing that the global definition of program typing, via the usual (Tarskian) semantics of first-order logic, agrees with their operational semantics in the intended model. Finally, we show that every intrinsic theory is interpretable in a conservative extension of first-order arithmetic. This means that quantification over infinite data objects does not lead, on its own, to proof-theoretic strength beyond that of Peano Arithmetic. Intrinsic theories are perfectly amenable to formulas-as-types Curry-Howard morphisms, and were used to characterize major computational complexity classes Their extensions described here have similar potential which has already been applied

    A tier-based typed programming language characterizing Feasible Functionals

    Get PDF
    International audienceThe class of Basic Feasible Functionals BFF 2 is the type-2 counterpart of the class FP of type-1 functions computable in polynomial time. Several characterizations have been suggested in the literature, but none of these present a programming language with a type system guaranteeing this complexity bound. We give a characterization of BFF 2 based on an imperative language with oracle calls using a tier-based type system whose inference is decidable. Such a characterization should make it possible to link higher-order complexity with programming theory. The low complexity (cubic in the size of the program) of the type inference algorithm contrasts with the intractability of the aforementioned methods and does not restrain strongly the expressive power of the language

    A theory of finite structures

    No full text
    We develop a novel formal theory of finite structures, based on a view of finite structures as a fundamental artifact of computing and programming, forming a common platform for computing both within particular finite structures, and in the aggregate for computing over infinite data-types construed as families of finite structures. A "finite structure" is here a finite collection of finite partial-functions, over a common universe of atoms. The theory is second-order, as it uses quantification over finite functions. Our formal theory FS uses a small number of fundamental axiom-schemas, with finiteness enforced by a schema of induction on finite partial-functions. We show that computability is definable in the theory by existential formulas, generalizing Kleene's Theorem on the Sigma-1 definability of RE sets, and use that result to prove that FS is mutually interpretable with Peano Arithmetic

    Alternating Turing machines for inductive languages

    No full text
    We show that alternating Turing machines, with a novel and natural definitionof acceptance, accept precisely the inductive (Pi-1-1) languages. Totalalternating machines, that either accept or reject each input, accept preciselythe hyper-elementary (Delta-1-1) languages. Moreover, bounding the permissiblenumber of alternations yields a characterization of the levels of thearithmetical hierarchy. Notably, these results use simple finite computingdevices, with finitary and discrete operational semantics, and neither theresults nor their proofs make any use of transfinite ordinals. Ourcharacterizations elucidate the analogy between the polynomial-time hierarchyand the arithmetical hierarchy, as well as between their respective limits,namely polynomial-space and Pi-1-1

    Panel

    No full text

    1

    No full text
    Logic has been called “the calculus of computer science” [1]. The argument is that logic plays a fundamental role in computer science, similar to that played by calculus in the physical sciences and traditional engineering disciplines. Unlike calculus, however, the central place of logic in the computer science curriculum is far from universally accepted. For example, the ACM/IEEE Computing Curricula 1991 lists logic only as one of many mathematics requirements. Yet logic plays an important role in areas of Computer Science as disparate as architecture (logic gates), software engineering (specification and verification), programming languages (semantics, logic programming), database (relational algebra and SQL), artificial intelligence (automatic theorem proving), algorithms (complexity and expressiveness), and theory of computation (general notions of computability). Some might even argue that much of computer science can be seen as a generalization or outgrowth of logic. On the other hand, there are those who claim that logic is just an academic exercise, of no practical import. The focus of this panel the role of logic in the computer science curriculum. The panelists addressed the following questions: 1. What is the content of logic in CS? Is it the standard package of propositional logic and first-order logic or should we include modal logic, temporal logic, and the like? 2. Should Logic in CS be taught differently from Logic in Math? In what way? Are the Association for Sym-This panel resulted from several discussions that took place durin
    corecore